Digital video broadcasting receiver

ABSTRACT

A digital video broadcasting receiver comprising a first input for receiving a first transport stream of data (TS# 1 ) and a second input for receiving a second transport stream of data (TS# 2 ), each transport stream comprising a plurality of packets and each packets having a header including a packet identifier PID. A de-scrambling device ( 12 ) receives packets of a transport stream for de-scrambling. A router ( 20 ) is arranged to pass packets alternately from the first TS# 1  and the second TS# 2  transport streams to the de-scrambling device  12  and to pass packets alternately to a first a second output, so restoring the first and second transport streams of data in a descrambled form.

This invention relates to the de-scrambling of multiple multimediastreams, e.g. Digital Video Broadcasting (DVB) streams, originating fromseveral sources. The invention provides a sophisticated andcost-effective way of implementation. The field of the invention isparticularly suitable for use in applications which have a demand forde-scrambling multiple DVB streams, especially when so called CommonInterface Module(s) are included.

The main driver for digital video broadcasting has been the DigitalVideo Broadcasting project organised by the European Broadcasting Union.In 1995 a set of standards was published as a result of the DVB project,which standards define a Digital Video Broadcasting system. Thesestandards have been adopted on a wide scale globally. DVB is based onthe International Standard ISO 13818 (known as MPEG2). MPEG2 defines acoding scheme for audio and video data and also defines a multiplexingstandard (ISO 13818-1) which allows for the combination of many video,audio and/or data streams into one single data stream (also known as atransport stream). Thus many different programs may be multiplexed intoa single transport stream. For instance, say a video program tends torequire a data rate of 2-9 Mbit/s, this means that 4-18 video programsmay be multiplexed into a single transport stream of around 38 Mbit/s.

Digital video broadcasting systems are known in which conditional access(CA) is provided. This means that access to a service is controlled, forinstance by scrambling the transmitted signal. In Digital VideoBroadcasting systems there is a demand for simultaneous handling ofmultiple multimedia streams.

European standard EN 50221 “Common Interface Specification forConditional Access and other Digital Video Broadcasting DecoderApplications” defines a common interface between a host (e.g. a digitalset-top-box (STB)) and the scrambling/de-scrambling and CA applications,known generically as a Common Interface Module (CI module). The CImodule de-scrambles those DVB streams that have been secured againstunauthorized viewing using a certain Conditional Access System (CAsystem). Conventionally CA systems are implemented so that each CAsystem has its own proprietary part, which has its own implementation inthe system. For example, if four different CA systems are used in theDVB environment and the STB is to de-scramble services secured by allfour of the CA systems, the STB must contain an implementation for eachof those proprietary parts. Currently EN 50221 requires that eachtransport stream is passed sequentially through all the CI modulesattached to a receiver.

Usually the proprietary parts of the CA system reside in the softwareand in the internal implementation of the hardware. In the case of aCommon Interface Module, the common interface of the STB is standardizedas well as the de-scrambling function and the mechanism to carry the CAmessages, but the implementation itself and the possible use of a SmartCard is proprietary.

This invention is directed to the solution of how DVB streams fromdifferent sources may be de-scrambled simultaneously.

In accordance with the invention there is provided a method of managingdata presented to and received from a de-scrambling device, the methodcomprising

-   -   receiving at least a first and a second data stream, each data        stream comprising a plurality of packets and each packet having        a header including a packet identifier,    -   alternately passing data from each data stream to a        de-scrambling device,    -   receiving de-scrambled packets from the de-scrambling device and        alternately passing data to at least a first and a second        output, so restoring at least the first and second data streams        in a de-scrambled form.        Thus a receiver, and in particular a single CI module, has the        functionality to de-scramble at least two transport streams of        data at the same time. This is of particular use in Digital        Video Broadcasting where a user may wish to watch one program on        one TV set and either watch another TV program on a different TV        set or record another TV program. The invention also allows for        more than two data streams to be handled in this manner, for        instance three data streams may be received and data from each        data stream passed alternately to the de-scrambling device.

Preferably the method comprises passing alternately a single packet fromeach data stream to a de-scrambling device, and receiving de-scrambledpackets from the de-scrambling device and alternately passing a singlepacket to a first output and a single packet to a second output, sorestoring the first and second data streams in a de-scrambled form.

At least one packet identifier of the packets of one of the data streamsmay be modified before being passed to the de-scrambling device. Thisavoids the problem faced when two transport streams from two separatesources have the same identifiers in the transport streams. Modificationof the packet identifiers may only be necessary if one or more of thepacket identifiers of the first transport are the same as correspondingpacket identifiers of the second transport stream. Prior to passingpackets to the de-scrambling device the packet identifiers of the datastreams may be compared with each other. If the packer identifiers ofthe data streams are the same, the packet identifiers of at least onedata stream may be modified.

Preferably the data streams include program specific information and theprogram specific information is read from the data streams prior topassing packets to the de-scrambling device.

The invention has particular applicability to data streams that conformto ISO 13818 and, in this case, the packet identifiers are PID asdefined in ISO 13818. Preferably the interface with the de-scramblingdevice conforms to European Standard EN50221.

Some of the packets from one or more data streams may bypass thede-scrambling device. These bypassed packets may be packets that are notrequired by a viewer or which do not require de-scrambling.

In a preferred embodiment of the invention, the packets from first andsecond data streams are passed to the de-scrambling device on one of therising or falling edges of a clock signal respectively and thede-scrambled packets being received from the de-scrambling device on oneof the rising or falling edges of a clock signal respectively.

Preferably the data streams are digital video broadcasting transportstreams that comply with the Digital Video Broadcasting standard.

In a second aspect of the invention there is provided a receivercomprising

-   -   a first input for receiving a first data stream and a second        input for receiving a second data stream, each data stream        comprising a plurality of packets and each packet having a        header including a packet identifier,    -   a de-scrambling device for receiving packets of a data stream        for de-scrambling,    -   a first and second output for outputting de-scrambled data        streams,    -   and a router arranged to pass data alternately from the first        and the second data streams to the de-scrambling device and to        receive de-scrambled packets from the de-scrambling device and        to pass data alternately to a first and a second output, so        restoring the first and second data streams in a de-scrambled        form.

Preferably the router is arranged to pass alternately a single packetfrom the first data stream and a single packet from the second datastream.

The router may be arranged to modify at least one packet identifier ofthe packets of a data stream before passing the data for that datastream to the de-scrambling device and/or to compare the packetidentifiers of the first data stream with the packet identifiers of thesecond data stream prior to passing packets to the de-scrambling device.

The data streams may include program specific information, the routerbeing arranged to read the program specific information from the datastreams prior to passing packets to the de-scrambling device.

The invention has particular application to data streams that conform toISO 13818 (in which the packet identifiers are PID as defined in ISO13818) and/or the interface with the de-scrambling device conforms toEuropean Standard EN50221. The receiver may be a digital videobroadcasting receiver.

Preferably the receiver is arranged to allow some of the packets fromthe first and/or second data stream to bypass the de-scrambling device.

The packets from the first and second data streams may be passed to thede-scrambling device on one of the rising or falling edges of a clocksignal respectively and/or the de-scrambled packets may be received fromthe de-scrambling device on one of the rising or falling edges of aclock signal respectively.

In a further aspect of the invention there is provided a router forrouting packets of a first data stream and a second data stream to andfrom a de-scrambling device, each data stream comprising a plurality ofpackets and each packet having a header including a packet identifier,

-   -   the router being arranged to pass data alternately from the        first and the second data streams to the de-scrambling device        and to receive de-scrambled packets from the de-scrambling        device and to pass data alternately to a first and a second        output, so restoring the first and second data streams in a        de-scrambled form.

In a further aspect of the invention there is provided a de-scramblingdevice comprising;

-   -   an input for receiving a clock signal, a first and a second        input buffer, a de-scrambling module and first and second output        buffers, the de-scrambling device being arranged to clock input        data into the first and second input buffers on one of the        rising and falling edge of the clock signal respectively and to        clock data out of the output buffers on one of the rising and        falling edge of the clock signal respectively. The de-scrambling        device preferably conforms to a Digital Video Broadcasting        standard.

In a further aspect of the invention there is provided a computerprogram product which, when said product is loaded, causes a computer toexecute procedure to manage data presented to and received from ade-scrambling device, the computer program product comprising computerprogram code to make the computer execute procedure

-   -   to receive at least a first and a second data stream, each data        stream comprising a plurality of packets and each packet having        a header including a packet identifier,    -   to pass data alternately from each data stream to a        de-scrambling device, and    -   to receive de-scrambled packets from the de-scrambling device        and to pass data alternately to at least a first and a second        output, so restoring the first and second data streams in a        de-scrambled form.

The computer program product may further comprise computer program codeto make the computer execute procedure to pass alternately a singlepacket from each data stream to a de-scrambling device, and to receivede-scrambled packets from the de-scrambling device and to passalternately a single packet to a first output and a single packet to asecond output, so restoring the first and second data streams in ade-scrambled form.

The invention will now be described, by way of example only, withreference to the accompanying drawings, in which:

FIG. 1 shows a first embodiment of a multimedia receiver in accordancewith the invention;

FIG. 2 shows a first embodiment of a router according to the invention;

FIG. 3 shows a second embodiment of a router according to the invention;

FIG. 4 shows an example of the clocking arrangement for use with theembodiment shown in FIG. 3; and

FIG. 5 shows an example of a modified CI module for use with the secondimplementation of the router shown in FIG. 3.

As DVB generally uses the MPEG2 coding scheme (ISO 13818) for the videoand audio data, the invention will be described with reference to thisdata format. An MPEG2 Transport Stream (TS) includes a sequence ofTransport Packets (TS Packets). Each TS Packet is fixed in length andhas a minimum 4-byte header and a minimum 184-byte payload. The TSheader includes a Packet Identifier (PID). During formation of thetransport streams from audio and/or video data, additional packets areinserted containing tables needed to de-multiplex the transport streams.These tables are collectively known as Program Specific Information(PSI).

The following table illustrates the contents and values of the PIDvalues used in the PSI information tables of MPEG2.

TABLE 1 The Contents and PIDs of the PSI Tables Structure Reserved NameStream Type PID # Description Program ITU-T Rec. H.222.0/ 0x00Associates Program Number Association Table ISO/IEC 13818-1 and ProgramMap Table PID (PAT) Program Map ITU-T Rec. H.222.0/ Assigned inSpecifies PID values for Table (PMT) ISO/IEC 13818-1 the PAT componentsof one or more programs Network Private Assigned in Physical networkparameters Information Table the PAT such as FDM frequencies. (NIT)Transponder Numbers, etc. Conditional ITU-T Rec. H.222.0/ 0x01Associates one or more Access Table ISO/IEC 13818-1 (private) EMMstreams each (CAT) with a unique PID value

The PID is a unique identifier. For a given program, every video andaudio stream as well as each PSI table has a unique PID. To reconstructa program from all its video, audio and table components, it isnecessary to ensure that the PID assignment is done correctly and thatthere is consistency between the PSI table contents and the associatedvideo and audio streams.

The Program Association Table (PAT) contains information on all programsin that particular multiplex, which is identified by thetransport_stream_id. PAT contains a list of program_numbers and theirrespective program_map_PIDs, which refer to the Program Identification(PID) of the respective Program Map Tables (PMT). The network_PIDidentifies a special table, Network Information Table (NIT), whichcontains information on the network specific parameters. NIT is notrelevant to the understanding of the current invention. PAT isidentified with the PID value 0x0000 and the table_id value 0x00.

TABLE 2 The Program Association Table (PAT) Syntax No. of bits Mnemonicprogram_association_section( ) { table_id 8 uimsbfsection_syntax_indicator 1 bslbf ‘0’ 1 bslbf reserved 2 bslbfsection_length 12 uimsbf transport_stream_id 16 uimsbf reserved 2 bslbfversion_number 5 uimsbf current_next_indicator 1 bslbf section_number 8uimsbf last_section_number 8 uimsbf for (i=0; i<N;i++) { program_number16 uimsbf reserved 3 bslbf if(program_number == ‘0’) { network_PID 13uimsbf } else { program_map_PID 13 uimsbf } } CRC_32 32 rpchof }

The Program Map Table (PAT, TS_program_map_section) below contains, forexample, a list of all elementary streams which belong to the programidentified by program_number. It will contain also a list ofdescriptors, which are mainly used to describe the type and nature ofthe elementary stream components. One of the most important descriptorsis the CA_descriptor, which is explained in the following paragraphs.The PID value of the PMT is indicated in the PAT, but the table_id valueof the PMT is 0x02.

TABLE 3 The Program Map Table (PMT) Syntax No. of bits MnemonicTS_program_map_section( ) { table_id 8 uimsbf section_syntax_indicator 1bslbf ‘0’ 1 bslbf reserved 2 bslbf section_length 12 uimsbfprogram_number 16 uimsbf reserved 2 bslbf version_number 5 uimsbfcurrent_next_indicator 1 bslbf section_number 8 uimsbflast_section_number 8 uimsbf reserved 3 bslbf PCR_PID 13 uimsbf reserved4 bslbf program_info_length 12 uimsbf for (i=0; i<N; i++) { descriptor() } for (i=0;i<N1;i++) { stream_type 8 uimsbf reserved 3 bslbfelementary_PID 13 uimsnf reserved 4 bslbf ES_info_length 12 uimsbf for(i=0; i<N2; i++) { descriptor( ) } } CRC_32 32 Rpchof }

The Conditional Access Table (CAT) contains a list of descriptors, andthe most interesting in this invention is the CA_descriptor, which isexplained in the following paragraph. The CAT is transmitted with thePID value 0x0001 and table_id value 0x01.

TABLE 4 The Conditional Access Table (CAT) Syntax No. of bits MnemonicCA_section( ) { table_id 8 Uimsbf section_syntax_indicator 1 Bslbf ‘0’ 1Bslbf reserved 2 Bslbf section_length 12 uimsbf reserved 18 bslbfversion_number 5 uimsbf current_next_indicator 1 bslbf section_number 8uimsbf last_section_number 8 uimsbf for (i=0; i<N;i++) { descriptor( ) }CRC_32 32 rpchof }

In the following table is shown the structure of the CA_descriptor. Whenthe CA descriptor is found in the PMT (table_id=0x02), the CA_PID pointsto packets containing program related access control information, suchas Entitlement Control Messages (ECMs). Its presence as programinformation indicates applicability to the entire program. In the samecase, its presence as extended Elementary Stream (ES) informationindicates applicability to the associated program element.

TABLE 5 The Structure of the Conditional Access Descriptor Syntax No. ofbits Mnemonic CA_descriptor( ) { descriptor_tag 8 Uimsbfdescriptor_length 8 Uimsbf CA_system_ID 16 uimsbf reserved 3 bslbfCA_PID 13 uimsbf for (i=0; i<N; i++) { private_data_byte 8 uimsbf } }

When the CA_descriptor is located in the CAT it is used for anEntitlement Management Message (EMM).

One of the descriptors used in the Elementary Stream (ES) informationfield of the PMT table is the private_data_indicator_descriptor, whichis reserved for private use. It is illustrated in the table below.

TABLE 6 Private Data Indicator Descriptor Syntax No. of bits IdentifierPrivate_data_indicator_descriptor( ) { descriptor_tag 8 Uimsbfdescriptor_length 8 Uimsbf private_data_indicator 32 Uimsbf }

The descriptor_tag can have values from 64 to 255. This information andthe stream_type in the ES information field can be used to separate theprivate data (stream_type value 128-255) from other data packets in theTS stream.

One example of an embodiment of a multimedia receiver according to theinvention is shown in FIG. 1. The arrangement depicted in FIG. 1 can beused in applications for instance which require simultaneous recordingof a digital stream residing on one physical frequency, while anotherdigital stream on another physical frequency is to be decoded andwatched. The receiver shown has two front-ends 10 a, 10 b. A front-end10 may, for example, be a cable front-end, a satellite front-end or aterrestrial front-end as known in the art. Transport streams (TS) to bede-scrambled by the CI module are selected in a conventional manner bythe front-end, which includes demodulating and error correctionfunctionality.

A TS Router 20 routes and/or multiplexes the two transport streams TS #1and TS #2 via a CI module 12, if appropriate, to a demultiplexer 14.This arrangement allows the watching and/or recording of two differenttransport streams or programs from which the scrambling is removed bythe CI Module 12.

A recording device 16 may be connected to the demultiplexer 14 so thatan incoming transport stream is de-scrambled before being fed to therecording device 16. For the purposes of content protection, the DVBstream which is routed to the recording device may be scrambled again inthe demultiplexer.

Alternatively the recording device 16 may be connected directly to theTS Router 20 so that those parts of the transport stream which arerouted to the recording device 16 can be routed there scrambled orde-scrambled via the CI module. If routed to the recording device in ascrambled format, when the recorded stream is played back, it is routedvia the TS Router 20 to the CI Module 12 and further to thedemultiplexer 14.

When recording, the recording device 16 is treated as one of the outputports of the TS router 20. When the recording device is running in theplayback mode it is acting as an input port to the TS router. This meansthat the recording device interface is seen as a bi-directionalinterface containing both the input and output port functionality.

The output of the demultiplexer 14 is connected to a video-audio decoder18 for play-back to a user.

One embodiment of a TS Router 20 is depicted in FIG. 2. For simplicity,the example shown in FIG. 2 has two input and two output streams, butmore complicated implementations can also be accomplished based on thesame principle. For instance there may be more than two input streamsand/or more or fewer than two output streams. The router routes datafrom the front-ends 10 to the CI 12 module if required and onto thedemultiplexer 14. Thus the CI Module 12 is used as a de-scramblingengine for the two input streams.

In the two input/two output case as shown in FIG. 2, the router 20passes packets from the first transport stream TS#1 into a first InputBuffer 201 and packets from the second transport stream TS#2 into asecond Input Buffer 202, respectively.

Data is taken from the two input streams alternately by the CI InputSelector 207 and presented to the CI module 12. Thus data (one or morepackets) from TS#1 is passed to the CI module 12, followed by data (oneor more packets) from TS#2, followed by data from TS#1, followed by datafrom TS#2 and so on. When the selector 207 tries to pass a packet ofdata from a buffer 201 or 202 to the CI module 12, if there is no datain buffer 201 or 202 at the time, the selector 207 may send a dummypacket to the CI module or stop the clock of the router or alter thestatus of a Data Valid flag to off.

The Main Control and Timing Block 204 generates the clock signals forthe whole circuitry and the appropriate control signals to the differentparts of the system.

The Input Buffer Control modules 205, 206 control the input bufferfilling status and, together with the Main Control and Timing block 204,allocate TS packets from the input buffers to the CI Module 12 via theCI Input Selector 207.

The input stream TS#1 is routed to the CI Module 12 without anymodifications, but the input stream TS#2 may contain the same PID valuesas TS#1, especially in the PSI information. If so, the PID values forTS#2 may be modified by a ‘PID Value In-Exchange’ block 203.

When two transport streams are combined into one transport stream as inthe present case (for presentation to the CI module 12), this may resultin a duplication of the pre-defined values of the PAT, CAT and PMT PIDs.

For the simultaneous de-scrambling of MPEG packets from two differenttransport streams which were scrambled under the control of the samesource CA system, the EMM and ECM PID values are conventionally selectedby the CA system to have different values and thus would not require anymodification by the ‘PID Value In-Exchange’ block 203.

On the other hand, when two transport streams are scrambled under thecontrol of different CA systems, the PID values of the video, audio, anddata streams in the different TS streams may be allocated different PIDvalues, but this is not always the case. If the PID values of the video,audio, and data streams in the different TS streams are allocated thesame PID values by different CA systems, then many of the PID values ofthe video, audio and data streams belonging to the transport stream TS#2 are changed by the ‘PID Value In-Exchange’ block 203 before feedingto the CI Module 12. For instance, when the two TS streams areindependent there may exist contradictions in the PID values of thevideo, audio, and data streams of each Transport Stream since the samePID values may have been used for both TS. Also the PID values of theEntitlement Management Message (EMM) and the Entitlement Control Message(ECM) could have the same PID values in the two different transportstreams. (Usually the values of the ECM PID is located in the CAdescriptor residing in the PMT and the EMM PID is located in the CAdescriptor in the CAT.)

When the CI Input Selector is handling unscrambled packets they can berouted directly to the TS Output Selector 208 without clocking throughthe CI Module depending on the implementation.

The CI module 21 de-scrambles packets presented to it using theappropriate PAT, CAT, PMT etc. PID values.

The TS Output Selector 208 sorts out the TS packets arriving from the CIModule into the appropriate TS Output Buffer 209, 210. The TS packetsflowing into the first TS Output Buffer 209 will be transferred from theTS Output Selector 208 without modification, but the TS packets to thesecond TS Output Buffer 210 have their PID values modified back to theiroriginal values, if they have been modified in the ‘PID ValueIn-Exchange’ block 203. This modification happens in the ‘PID ValueOut-Exchange’ block 211.

The first Output Buffer Control 213 supervises and controls the fillingstatus and mechanism of the first Output Buffer 209 in the same way asthe second Output Buffer Control 214 for the second Output Buffer 210.

The contents of the Output Buffer 209 and Output Buffer 210 is clockedout in a constant bit stream fashion so that that the timing of theoriginal bit stream will be maintained without the need to modify thecontents of the PCR (Program Clock Reference) fields in the TS packets.

In the first embodiment of the invention, in which several TS streamsare combined into one for feeding to the CI module, severalmodifications are made to the PID values of the TS packets within thoseTS streams.

The modification and other procedures in the PID Value-In Exchangemodule 203 can be carried out with the following steps (with theassumption that the TS stream TS #1 is kept unchanged through theprocessing):

-   -   Read in the PAT tables from all the TS input streams    -   Study all the PMT PID values from all the PAT tables    -   Read in all the PMT tables for all the different TS input        streams    -   Read the CAT tables from all TS input streams.    -   (At this point the system has all the PID value information of        all the incoming TS streams.)    -   Modify the PAT PID values of the PAT tables, except in the TS        #1, which will have PID value 0x0000.    -   Modify all the PMT PID values in the PAT tables, except in the        TS #1, if there is need for modification (e.g contradiction with        other streams exist)    -   Modify the PID values of the PMT tables, where necessary.    -   Modify the PCR_PID values within the PMT tables if necessary.    -   Modify the elementary_PID vales within the PMT tables in cases        where the CA_descriptors indicate that the respective elementary        stream is encrypted, otherwise the respective elementary stream        packet will bypass the CI module directly to the respective        output buffer. According to the indication from the        private_data_indicator_descriptor (from the descriptor_tag or        the stream_type value) those TS packets must be directed to the        CI module.    -   Modify the contents of the CA_descriptors within the PMT and CAT        tables, if necessary.    -   Modify the contents of the PID values of those elementary stream        components, which are directed to the CI module. These PID value        modifications must match with the modifications in the        respective PMT tables.    -   Forward to the CI module 12 the new PSI tables with the modified        PID values. This may be done in any suitable manner e.g. by        providing configuration information to the CI module or in        dedicated data packets or in a specific dialog between the        router and the CI module.

Operations to be carried out in the PID Value Out-Exchange block 211 arelisted as follows:

-   -   The original PAT, PMT and CAT tables must be returned to the        respective transport streams.    -   The PID values of the TS packets containing PCR values must be        replaced with the original ones.    -   All those TS packets containing service data (video, audio,        data, etc.), the PID value of which has been modified in the PID        Value In-Exchange block 203, must be modified back to their        original values.

It is not necessary to modify the PAT PID to its original value becausethe individual TS can be separated from each other based on thetransport_stream_id residing in the PAT table. The transport_stream_idparameter identifies the origin multiplex of the respective PAT table.

There are also some other implementation possibilities. One possibleapproach is as follows:

-   -   Read in all the PAT, PMT and CAT tables from the incoming        streams.    -   Modify the PID values of the TS packets containing the EMMs and        ECMs of the selected programs, if the PID values in the TS        packets containing the EMM and ECM messages in the selected        programs are carrying the same values. This happens in the PID        Value In-Exchange block 203.    -   Modify the PID values of the elementary streams belonging to the        selected programs so that different elementary streams from        different TS streams will not use the same PID values. This        happens in the PID Value In-Exchange block 203.    -   Communicate with the CI module 12 on the application level and        give the required information in the form of CA PMT objects with        the modified PID values. (European standard EN50221 includes the        details of the CA PMT object communications between the CI        module and the host.)    -   The TS packets containing the elementary streams and EMM & ECM        messages of the selected programme are taken to the CI module.        Everything else bypasses the CI module directly to the        respective output buffers.    -   At the output side of the CI module, in the PID Value        Out-Exchange block 211, the original PID values are returned to        the appropriate TS packets coming from the CI module.

In some instances, the TS router may bypass the CI module for some ofthe TS data packets. For instance, say each TS has a data rate of 60Mbits/sec and that the CI module can only handle 60 Mbits/sec. Thus, fortwo input transport streams, at least 60 Mbits/sec of the TS streamsbypass the CI module. Only those packets of the transport stream thatare required by a user need to be passed to the CI module. Thus, forinstance, if a TS includes data for say 6 programs and a user onlywishes to view or record one of the programs of the TS, then the CIinput selector 207 needs to pass only the packets relating to theprogram to be viewed/recorded. Additionally, if a program to beviewed/watched is transmitted in an un-scrambled manner, then thesepackets may also bypass the CI module.

Other variations are also envisaged to feed two or more TS input streamsthrough the CI module, where the de-scrambling of the selected programswill take place.

If the number of source and target TS streams is different and are to bedirected as complete TS streams for further processing after thede-scrambling process in the CI module, further processing in the PAT,PMT and CAT tables and PID value exchange processing may be necessary.If the TS packets from different sources are to be demultiplexed intodifferent service data (video, audio, data, ec.) after the CI moduleprocessing for a different number of targets, there may be no need forfurther modifications of the PAT, PMT and CAT tables or PID valueexchange.

If there are three input streams to be de-scrambled at the same time,the CI input selector 207 alternately passes data from each of thetransport streams e.g. a packet from TS#1, a packet from TS#2, a packetfrom TS#3, a packet from TS#1, a packet from TS#2, a packet from TS#3,and so on.

As discussed above, not all packets from a TS have to be presented tothe CI module 12. Only those required by a user need to be presented.Thus packets #1, #2, #3 etc in each transport stream as presented to theCI module 12 by the CI input selector 207 do not have to occurconsecutively within each TS. All that is necessary is for the CI inputselector 12 to take data from each TS in turn.

When there are more than two input and output streams, theimplementation is similar to the two input/output stream case, exceptthat it becomes more complicated since more buffers and more complicatedtiming and control blocks are required and the bypass functionalitybecomes more complicated due to the multipath routing functionality.

Different amount of input and output ports makes the implementation morecomplicated, but the operations as described above, e.g. clocking thedata to the CI module, bypassing some packets, controlling buffers androuting functionality, will remain basically the same in nature.

In an alternative embodiment, when two TS input streams are feeding thesystem, a special clocking arrangement may be used, which would meanthat there is no need to change the PID values in the incoming streams.An example of a second embodiment of a router to implement this isillustrated in FIG. 3.

In this particular implementation, the PID values in the TS inputstreams do not need to be changed. In the simplest form of theimplementation both TS streams are routed through the CI module 12without the need to bypass any packets. The router 20′, as shown in FIG.3, differs from that shown in FIG. 2 in that the ‘PID Value In-Exchange’block 203 and the ‘PID Value Out-Exchange’ block 211 are omitted. The CIInput Selector 207 and the CI Output Selector 208 are controlled by aclocking system 218.

The timing diagram of the clocking system is depicted in FIG. 4, wherethe rising edge of the TS clock (indicated by arrows labelled A) is usedto clock in data of TS #1 from the first input buffer 201 and thefalling edge (indicated by arrows B) is used to clock in data of TS #2from the second input buffer 202 the TS #2. The operation of the CImodule is clocked successively between TS#1 packets and TS#2 packets,both on its input and its output. Thus the rising edge of the TS clock(indicated by arrows labelled A) is used to clock out data for TS #1from the CI module 12′ to the first output buffer 209 and the fallingedge (indicated by arrows B) is used to clock out data for TS #2 fromthe CI module 12′ to the second output buffer 210.

An example of a CI module to allow for this implementation is shown inFIG. 5. The CI Module includes a first input buffer 120 for storingpackets received on the rising edge of a clock signal, a second inputbuffer 122 for storing packets received on the falling edge of a clocksignal, a TS packet de-scrambler 124, a first output buffer 126 forstoring packets for output on the rising edge of a clock signal, asecond output buffer 128 for storing packets for output on the fallingedge of a clock signal and a Data Selector and Output Clock Generatorcomponent 129. The input data, from CI Input Selector 207, is bufferedinto one or other of the buffers 120, 122 depending on whether thepacket is received on the rising or falling edge of the incoming clocksignal (Clock-in). The data is presented to the TS packet de-scrambler124 one packet at a time and, depending on the filling status of theinput buffers, the TS packet de-scrambler takes the next packet from theappropriate buffer 120,122.

After de-scrambling, the packets are loaded into the respective outputbuffer 126, 128. The output data selector 129 takes one byte (or packet)at a time from the output buffers, alternating between the buffers onthe rising and falling edges of the generated output clock. If one ofthe output buffers does not have any complete packets in the buffer, adummy packet is output instead.

Thus, in this arrangement, the CI module is switched on the rising andfalling edge of the clock. The timing constraints in the timing of theclock might need to be tighter than specified in the Common Interfacestandard EN 50221. It is also possible with this implementation for theCI Input Selector 207 to send some of the packets direct to the TSOutput Selector 208, so bypassing the CI Module 12′ completely for thosepackets.

The special implementations of the CI module, which have been referredto above, mean that in effect there are two separate or functionallyoverlapping DVB de-scramblers. These de-scramblers take in data on therising and falling edge, respectively, de-scramble it and clock out dataon the falling and rising edge from different TS stream routes,respectively.

The PAT, CAT and PMT table handling is doubled and also both TS streamroutes require their own key and PID storage for the two separatede-scrambling processes.

The arrangement of FIG. 3 is a more straightforward implementation thanthat shown in FIG. 2, but is limited to the two TS input streams if asingle clock signal is used.

If the timing of EN 50221 is to be adhered to, then the implementationdepicted in FIG. 2 is preferred, as it is possible to lower the trafficto the CI module 12 to a maximum of 60 Mbits/sec by bypassing the CImodule for some packets. This implementation means that part of the TSstreams bypass the CI module 12 thus limiting the amount of data whichcan be de-scrambled in the system.

The CA system and the CI Module may require some special implementation,especially in software if the CI Module has been initially designed in asophisticated way. This implementation requires communication of themodified PID values of the PAT, CAT and PMT tables. If the wholecontents of these tables have been modified to match the modified PIDvalues in the TS stream to the CI Module, basically the CI Modulerequires the capability to capture the PAT, CAT and PMT tables with themodified PID values and the rest of the CA procedures can actaccordingly.

1. A method, comprising: receiving at least two data streams, each ofthe at least two data streams comprising a plurality of packets and eachpacket having a header including a packet identifier, generating amultiplexed data stream in a routing component, the multiplexed datastream comprising packets from the at least two data streams arranged inan alternating order; descrambling the multiplexed data stream using asingle descrambling component distinct from the routing component,wherein the routing component sequentially routes packets from themultiplexed data stream to the single descrambling component in thealternating order; receiving, in the routing component, packets from thesingle descrambling component, the packets being received in adescrambled form and in accordance with the alternating order so that adescrambled multiplexed data stream is formulated; and outputtingseparate descrambled data streams from the routing component, theseparate descrambled data streams being formed by demultiplexing thedescrambled multiplexed data stream in the routing component.
 2. Themethod according to claim 1 further comprising alternately passing asingle packet from each data stream to the descrambling component, andreceiving descrambled packets from the descrambling component andalternately passing a single packet to a first output and a singlepacket to a second output, so restoring the first and second datastreams in a descrambled form.
 3. The method according to claim 1wherein at least one packet identifier of the packets of one of the datastreams is modified before being passed to the descrambling component.4. The method according to claim 1 wherein prior to passing packets tothe descrambling component the packet identifiers of the data streamsare compared with each other.
 5. The method according to claim 1 whereinthe data streams include program specific information, wherein theprogram specific information is read from the data streams prior topassing packets to the descrambling component.
 6. The method accordingto claim 1 wherein each data stream conforms to ISO 13818 and the packetidentifiers are PID as defined in ISO
 13818. 7. The method according toclaim 1 wherein the interface with the descrambling component conformsto European Standard EN50221.
 8. The method according to claim 1 whereinsome of the packets from one or more data streams bypass thedescrambling component.
 9. The method according to claim 1 wherein thepackets from first and second data streams are passed to thedescrambling component on one of the rising or falling edges of a clocksignal respectively.
 10. The method according to claim 9 wherein thedescrambled packets are received from the descrambling component on oneof the rising or falling edges of a clock signal respectively.
 11. Themethod according to claim 1 wherein the data streams are digital videobroadcasting transport streams.
 12. The method according to claim 11wherein the transport streams comply with the Digital Video Broadcastingstandard.
 13. An apparatus, comprising: a first input configured toreceive a first data stream and a second input configured to receive asecond data stream, each data stream comprising a plurality of packetsand each packet having a header including a packet identifier, adescrambling device configured to descramble packets of a multiplexeddata stream, first and second outputs configured to output descrambleddata streams, and a router configured to generate the multiplexed datastream comprising packets from the first and second data streamsarranged in an alternating order, sequentially route packets from themultiplexed data stream to the descrambling device in the alternatingorder and to receive descrambled packets from the descrambling device,the packets being received in a descrambled form and in accordance withthe alternating order so that a descrambled multiplexed data stream isformulated, the router configured to output separate descrambled datastreams to the first and second outputs, the separate data streams beingformed by demultiplexing the descrambled multiplexed data stream. 14.The apparatus according to claim 13 the router is configured to passalternately a single packet from the first data stream and a singlepacket from the second data stream.
 15. The apparatus according to claim13 wherein the router is configured to modify at least one packetidentifier of the packets of a data stream before passing the data forthat data stream to the descrambling device.
 16. The apparatus accordingto claim 13 wherein the router is configured to compare the packetidentifiers of the first data stream with the packet identifiers of thesecond data stream prior to passing packets to the descrambling device.17. The apparatus according to claim 13 wherein the data streams includeprogram specific information, the router being configured to read theprogram specific information from the data streams prior to passingpackets to the descrambling device.
 18. The apparatus according to claim13 wherein each data stream conforms to ISO 13818 and the packetidentifiers are PID as defined in ISO
 13818. 19. The apparatus accordingto claim 13 wherein the interface with the descrambling device conformsto European Standard EN50221.
 20. The apparatus according to claim 13wherein the apparatus is a digital video broadcasting receiver.
 21. Theapparatus according to claim 13 further configured to allow some of thepackets from the first and/or second data stream to bypass thedescrambling device.
 22. The apparatus according to claim 13 wherein thepackets from the first and second data streams are passed to thedescrambling device on one of the rising or falling edges of a clocksignal respectively.
 23. The apparatus according to claim 22 wherein thedescrambled packets are received from the descrambling device on one ofthe rising or falling edges of a clock signal respectively.
 24. Anapparatus comprising: a router configured to generate a multiplexed datastream, the multiplexed data stream comprising packets from a first datastream and a second data stream arranged in an alternating order; therouter being configured to sequentially route packets from themultiplexed data stream to a descrambling device in the alternatingorder, to receive descrambled packets from the descrambling device, thepackets being received in a descrambled form and in accordance with thealternating order so that a descrambled multiplexed data stream isformulated and to output separate descrambled data streams to a firstand a second output, the separate descrambled data streams being formedby demultiplexing the descrambled multiplexed data stream, wherein eachdata stream comprises a plurality of packets, each packet having aheader including a packet identifier.
 25. A computer program productcomprising a computer readable medium having computer readable programcode embodied in said medium, comprising: a computer readable programcode configured to receive at least two data streams, each data streamcomprising a plurality of packets and each packet having a headerincluding a packet identifier, a computer readable program codeconfigured to generate a multiplexed data stream in a routing component,the multiplexed data stream comprising packets from the at least twodata streams arranged in an alternating order, a computer readableprogram code configured to descramble the multiplexed data stream usinga single descrambling component distinct from the routing component,wherein the routing component sequentially routes packets from themultiplexed data stream to the single descrambling component in thealternating order; a computer readable program code configured toreceive, in the routing component, packets from the single descramblingcomponent, the packets being received in a descrambled form and inaccordance with the alternating order so that a descrambled multiplexeddata stream is formulated; and a computer readable program codeconfigured to output separate descrambled data streams from the routingcomponent, the separate descrambled data streams being formed bydemultiplexing the descrambled multiplexed data stream in the routingcomponent.
 26. The computer program product of claim 25, furthercomprising: a computer readable program code configured to passalternately a single packet from each data stream to the descramblingcomponent, and to receive descrambled packets from the descramblingcomponent and to pass alternately a single packet to a first output anda single packet to a second output, so restoring the first and seconddata streams in a descrambled form.